Today, there is a growing demand for content delivery over various networks and network types. End users or content consumers may desire access to various types of content, including video and audio streams. The bandwidth available to the end users, however, may vary greatly depending on a geographical location of a particular end user, network connection type, network load, etc. As such, content streams such as video and audio streams are often available in a number of quality levels. End users can manually choose to receive a given content stream in a specific quality level, or may choose to let the specific quality level be determined based on current network characteristics or bandwidth allotment.
Typically, end users will request content at the best available quality level based on the current network characteristics. The network characteristics for a given end user, however, may vary greatly during delivery of the content stream. For example, an end user may initially have a large amount of bandwidth available and select a high quality level for a content stream. Seconds or minutes later however, the bandwidth available may be significantly lower, and thus the high quality content stream may be interrupted for buffering during delivery of the content stream. To solve this problem, adaptive streaming techniques have been developed which allow for delivery of a content stream in a plurality of quality levels. As network characteristics change during delivery of the content stream, the quality level delivered to an end user will change dynamically to ensure smooth and uninterrupted delivery of the content stream.
Hypertext Transfer Protocol (HTTP) Adaptive Streaming (HAS) is one such adaptive streaming technique. HAS solutions can encode a given content stream such as a video stream in several different quality levels. Each quality level is split into small chunks or segments. Each chunk or segment is typically a few seconds in length. Corresponding audio streams may also be divided into separate chunks.